package cn.jiyun.pojo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;


/**
 * 订单表(Orders)表实体类
 *
 * @author makejava
 * @since 2024-12-19 15:12:49
 */
@TableName("orders")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Orders {
    @TableId(type = IdType.AUTO)
//主键
    @ExcelProperty("序号")
    private Integer id;
    //订单编号
    @ExcelProperty("订单编号")
    private String orderNumber;
    //订单生成时间
    @ExcelProperty("订单生成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startingDate;

    //订单状态，已完成，待接单，进行中，未接单
    @ExcelProperty("订单状态")
    private Integer orderStatus;
    //用户ID
    @ExcelProperty("用户ID")
    private Integer userId;
    //司机ID
    @ExcelIgnore
    private Integer driverId;
    @ExcelProperty("支付状态")
//支付状态，如 “未支付”、“已支付”、“支付失败”、“退款中” 等
    private Integer paymentStatus;
    //支付时间
    @ExcelProperty("支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime paymentTime;
    //核销金额
    @ExcelProperty("核销金额")
    private BigDecimal cancelMoney;
    //核销编号
    @ExcelProperty("核销编号")
    private String orderCancel;
    //核销状态
    @ExcelProperty("核销状态")
    private Integer cancelStatus;
    //订单类型 1实时自叫车 2预约自叫车 3实时代叫车
    @ExcelIgnore
    private Integer orderTypes;
    //订单里程数
    @ExcelIgnore
    private Integer mileage;
    //订单耗时
    @ExcelIgnore
    private Integer timeConsuming;
    //司机评价
    @ExcelIgnore
    private BigDecimal driverRating;
    //上车地点
    @ExcelIgnore
    private String pickupLocation;
    //下车地点
    @ExcelIgnore
    private String dropoffLocation;
    //上车地点的纬度
    @ExcelIgnore
    private BigDecimal pickupLatitude;
    //上车地点的经度
    @ExcelIgnore
    private BigDecimal pickupLongitude;
    //下车地点的纬度
    @ExcelIgnore
    private BigDecimal dropoffLatitude;
    //下车地点的经度
    @ExcelIgnore
    private BigDecimal dropoffLongitude;
    //订单的总金额
    @ExcelProperty("订单费用")
    private BigDecimal totalAmount;
    //实际支付的金额
    @ExcelIgnore
    private BigDecimal paymentAmount;
    //支付方式，微信支付、支付宝支付、银行卡支付
    @ExcelIgnore
    private String paymentMethod;
    //乘客手机号
    @ExcelIgnore
    private String passengerPhone;
    //出发点城市
    @ExcelIgnore
    private String startCity;
    //出发点行政区
    @ExcelIgnore
    private String startRegi;
    //途径点1
    @ExcelIgnore
    private String pathwayOne;
    //途径点1城市
    @ExcelIgnore
    private String pathwayoneCity;
    //途径点2
    @ExcelIgnore
    private String pathwayTwo;
    //途径点2城市
    @ExcelIgnore
    private String pathwaytwoCity;
    //目的地城市
    @ExcelIgnore
    private String destinationCity;
    //目的地行政区
    @ExcelIgnore
    private String destinationRegion;
    //实际下车点
    @ExcelIgnore
    private String practicalOff;
    //实际下车城市
    @ExcelIgnore
    private String practicalCity;
    //订单接单时间
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime receivingTime;
    //订单等待时间
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime latencyTime;
    //订单预约时间
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime appointmentTime;
    //订单到达时间
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime arrivalTime;
    //是否提前下车
    @ExcelIgnore
    private Integer ifDebarkation;
    //行车费用
    @ExcelIgnore
    private BigDecimal vehicleCost;
    //附加费用
    @ExcelIgnore
    private BigDecimal additionalCharge;
    //司机收益
    @ExcelIgnore
    private BigDecimal driverEarnings;
    //乘客投诉司机1就代表一条投诉以此类推
    @ExcelIgnore
    private Integer complaintDriver;
    //司机投诉乘客1就代表一条投诉以此类推
    @ExcelIgnore
    private Integer complaintPassenger;
    //即时聊天
    @ExcelIgnore
    private String chitchat;
    //电话通讯
    @ExcelIgnore
    private Integer phoneNumber;
    //用户支付宝编号
    @ExcelProperty("用户支付宝编号")
    private String alipayNumber;
    //签约费
    @ExcelIgnore
    private BigDecimal labelFee;
    //实际费率
    @ExcelIgnore
    private BigDecimal practicalFee;
    //平台收益
    @ExcelIgnore
    private BigDecimal earnings;
    @ExcelIgnore
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime date1;
    @ExcelIgnore
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime date2;
    //用户姓名
    @TableField(exist = false)
    private String userName;
    //用户手机号
    @TableField(exist = false)
    private String userPhone;
    //司机姓名
    @TableField(exist = false)
    private String driverName;
    //司机手机号
    @TableField(exist = false)
    private String driverPhone;
    //车牌号
    @TableField(exist = false)
    private String carName;
    private Integer frequency;


}
